Method and system for delivering data over a network

ABSTRACT

This invention describes a new method and system for delivering data over a network to a large number of clients, which may be suitable for building large-scale Video-on-Demand (VOD) systems. In current VOD systems, the client may suffer from a long latency before starting to receive the requested data that is capable of providing sufficient interactive functions, or the reverse, without significantly increasing the network load. The method utilizes two groups of data streams, one responsible for minimizing latency while the other one provides the required interactive functions. In the anti-latency data group, uniform, or non-uniform or hierarchical staggered stream intervals may be used. The system being realized based on this invention may have a relatively small startup latency while users may enjoy most of the interactive functions that are typical of video recorders including fast-forward, forward-jump, and so on. Furthermore, this invention may also be able to maintain the number of data streams, and therefore the bandwidth, required.

This application is a divisional of application Ser. No. 09/954,041filed Sep. 18, 2001, which is a continuation-in-part of application Ser.Nos. 09/917,638 and 09/917,639 filed on Jul. 31, 2001.

FIELD OF THE INVENTION

This invention relates to methods and systems for delivering data over anetwork, particularly those for delivering a large amount of data withrepetitive content to a large number of clients, like Video-on-Demand(VOD) systems.

BACKGROUND OF THE INVENTION

Current VOD systems face a number of challenges. One of them is how toprovide the clients, which may be in the number of millions, withsufficient interactivity like fast-forward/backward and/orforward/backward-jump. At the same tie, the provision of such functionsshould not impose severe network load, as the network resources namelythe bandwidth may be limited. Furthermore, every client generallyprefers to have the movie he selects to be started as soon as possible.

The following sections describe some of the currently used VOD systemsand their possible disadvantages:

1. Near-VOD (NVOD) With Regular Stream-Interval

A NVOD system consists of staggered multicast streams with regularstream interval T (FIG. 1). The streams are multiplexed onto the same ordifferent physical media for distribution to the users via somemultiplexing mechanisms (such as time-division multiplexing, frequencydivision multiplexing, code-division multiplexing, wavelength divisionmultiplexing etc.). The distribution mechanisms include point-to-point,point-to-multipoint and other methods. Each stream is divided intoregular segments of interval T, and the segments are labelled 1, 2, 3, .. . N respectively. The content that is to be distributed to the usersis carried on the N segments and the content is replicated on all thesestreams. The content is also repeated on each stream in time. By usingsuch a staggered streaming arrangement with regular stream interval T,the users are guaranteed to receive the content at any time with astart-up latency less than T. However, there is no provision for userinteractivity in such a system. If a user interrupts the content viewingsay by pausing the display, the user cannot resume the viewing at thesame play point where the user pauses and is forced to skip some contentto keep up with the multicast-stream that is continuously playing.

2. Quasi-VOD (QVOD) With Irregular Stream-Interval

A QVOD system consists of staggered multicast streams with irregularstream intervals (FIG. 2). The streams are multiplexed onto the same ordifferent physical media for distribution to the users via somemultiplexing mechanisms (such as time-division multiplexing, frequencydivision multiplexing, code-division multiplexing, wavelength divisionmultiplexing etc . . . ). The distribution mechanisms includepoint-to-point, point-to-multipoint and other methods. Unlike the NVODsystem where the streams constantly exist, the streams in a QVOD systemare created on demand from the users' request for the content. Theusers' requests within a certain time interval Ti are batched togetherand served together by Stream i. The stream intervals T1, T2, . . . Ti,. . . are irregular. The streams (Stream 1 to i etc.) are all providedon-demand and will be removed as soon as the content distribution hasbeen completed. The streams are constantly created as users' requestscome in. By using such a staggered streaming arrangement with irregularstream interval Ti, the particular group of users starting withininterval Ti is guaranteed to receive the contents within Ti (start-uplatency). Again, there is no provision for user interactivity in such asystem. If a user interrupts the content viewing say by pausing thedisplay, the user cannot resume the viewing at the same play point wherethe user pauses and is forced to skip some content to keep up with themulticast-stream that is continuously playing.

3. Distributed Interactive Network Architecture (DINA)

DINA system refers to the method and system as described in theapplicant's PCT applications PCT/IB00/001857 & 001858. In the DINAsystem, interactive functions including fast-forward/backward,forward/backward-jump, slow motions, and so on can be provided by aplurality of multicast video data streams in conjunction with aplurality of distributed interactive servers. Although interactivefunctions may be provided to the client in such the DINA system, thenetwork load may increases if the start-up time for each user's requestis to be reduced. This is determined by the stream interval of themulticast data streams. Generally, the number of data streams, andtherefore the network load, increases with the decrease of the streaminterval.

In the NVOD and QVOD systems, a user wanting to view the content willsimply tap into one of the many staggered streams and view the contentsimultaneously with all others sharing the stream. While such schemesare simple and efficient, they suffer from two difficulties—a largestart-up latency and user inflexibility.

For the first difficulty, a user may have to wait as long as one streaminterval T before the request is served, and the waiting time may be aslarge as many minutes or even hours, depending on the stream interval.Although the stream interval can be made very small, say even down to afew seconds, this also means that the system has to provide a largenumber of streams for serving the same amount of content. The number ofstreams required is simply $\frac{R}{T},$where R is the length of the content and T is the stream interval, Thus,small start-up latency may incur a much higher transmission bandwidthand cost. The DINA system may also face such a difficulty.

For the second difficulty, the users viewing a multicast stream cannotfreely interrupt the stream because there are other viewers. Therefore,NVOD and QVOD systems cannot allow VCR-liked interactivity such aspause, resume, rewind, slow motion, fast forward, and so on. Thesesystems also hinder the introduction of new forms of interactive mediato be deployed. In recent years, one popular approach to offer some formof VCR-liked interactivity over NVOD and QVOD systems is to add astorage unit to the set top box (STB) so as to cache all the availablecontent being broadcast. Such systems suffer from a higher system costand operational problems like storage unit failure and management.

It can be realised that the prior art may fail to provide a solution tothe existing problems in VOD systems. Specifically, current VOD systemsmay not be able to provide the clients/users with desired interactivefunctions with a short start-up time, while at the same time minimisingthe network load. Therefore, it is an object of this invention toresolve at least some of the problems at set forth in the prior art. Asa minimum, it is an object of this invention to provide the public witha useful choice.

SUMMARY OF THE INVENTION

Accordingly, this invention provides, in the broad sense, a method andthe corresponding system for transmitting data over a network to atleast one client having a latency time to initiate transmission of saiddata to the client, The method of this invention includes the steps of:

-   -   generating at least one of anti-latency data stream containing        at least a leading portion of data for receipt by a client; and    -   generating at least one interactive data stream containing at        least a remaining portion of said data for the client to merge        into after receiving at least a portion of an anti-latency data        stream.

The anti-latency data streams and the interactive data streams may begenerated by at least one anti-latency signal generator and at least oneinteractive signal generator, respectively.

It is another aspect of this invention to provide a method and thecorresponding system for transmitting data over a network to at leastone client including the step of fragmenting said data into K datasegments each requiring a time T to transmit over the network, whereineach of the K data segments contains a head portion and a tail portion,and the head portion contain a portion of data of the tail portion ofthe immediate preceding segment to facilitate merging of the K datasegments when received by the client.

The K data segments may be generated by a signal generator.

It is yet another aspect of this invention to provide a method and thecorresponding system for transmitting data over a network to at leastone client having a latency time to initiate transmission of said datato the client, including the steps of:

-   -   generating at least one anti-latency data stream containing at        least a leading portion of data for receipt by the client;    -   pre-fetching the leading portion in the client as pre-fetched        data; and    -   generating at least one interactive data stream containing at        least a remaining portion of said data for the client to merge        into the leading portion.

This invention also provides a method and the corresponding system fortransmitting data over a network to at least one client including thesteps of generating a plurality of anti-latency data streams, in whichthe anti-latency data streams include:

-   -   a leading data stream containing at least one leading segment of        a leading portion of said data being repeated continuously        within the leading data stream; and    -   a plurality of finishing data streams, each of the finishing        data streams:        -   containing at least the rest of the leading portion of said            data; and        -   repeated continuously within said finishing data stream and            wherein each successive finishing data stream is staggered            by an anti-latency time interval.

This invention further provides a method and the corresponding systemfor transmitting data over a network to at least one client. The methodincludes the steps of generating M anti-latency data streams from 1 toM, wherein an m^(th) anti-latency data stream has F_(m) segments, andF_(m) is an m^(th) Fibonacci number; and wherein said F_(m) segments arerepeated continuously within the m^(th) anti-latency data stream.

It is yet another aspect of this invention to provide a method and thecorresponding system for transmitting data over a network to at leastone client, said data being fragmented into K segments each requiring atime T to transmit over the network. The method includes the steps ofgenerating M anti-latency data streams containing 1 to K anti-latencydata segments, wherein the anti-latency data segments are distributed inthe M anti-latency data streams such that an k^(th) leading segment isrepeated by an anti-latency time interval ≦kT within the anti-latencydata streams.

This invention further provides a method for receiving data beingtransmitted over a network to at least one client. The data to betransmitted is fragmented into K segments each requiring a time T totransmit over the network. The data is divided into two batches of datastreams, the anti-latency data streams include M anti-latency datastreams, and the interactive data streams include N interactive datastreams. The method for receiving the data includes the steps of:

-   -   raising a request for said data. The request may be raised by a        processor of the client; and    -   connecting the client to the M anti-latency data streams and        receiving data in the M anti-latency data streams. The client or        the receiver may connect to the anti-latency data streams by a        connector.

This invention also provides a method and a corresponding system forreceiving data being transmitted over a network to at least one client,wherein said data includes a leading portion and a remaining portion,and the remaining portion is transmitted by at least one interactivedata stream including the steps of:

-   -   pre-fetching the leading portion in the client as pre-fetched        data, which is contained in the buffer of the client; and    -   merging the pre-fetched data to the remaining portion by a        processor.

Alternatively, instead of being generated continuously, the anti-latencydata streams can be generated upon request from the client.

Further embodiments and options of the above methods and systems will bedescribed in the following sections, and may then be apparent to oneskilled in the art after reading the description.

BRIEF DESCRIPTION OF THE DRAWINGS

Preferred embodiments of the present invention will now be explained byway of example and with reference to the accompany drawings in which:

FIG. 1 shows the data stream structure of a NVOD system.

FIG. 2 shows the data stream structure of a QVOD system.

FIG. 3 shows the overall system architecture of the data transmissionsystem of this invention.

FIG. 4 shows the data streams arrangement of Configuration 1 of the datatransmission system of this invention.

FIG. 5 shows the data streams arrangement of Configuration 2 of the datatransmission system of this invention,

FIG. 6 shows the data streams arrangement of Configuration 3 of the datatransmission system of this invention. Note the difference in thearrangement of the Group II data streams comparing with FIGS. 4 & 5.

FIG. 7 shows yet another Group I data streams arrangement ofConfiguration 3.

FIG. 8 shows the data streams arrangement of Group I data streams ofConfiguration 4 of the data transmission system of this invention.

FIG. 9 shows yet another arrangement of Group I data streams ofConfiguration 4 of the data transmission system of this invention.

FIG. 10 shows one of the data streams arrangement of Configuration 5 ofthe data transmission system of this invention. The particulararrangement of Group I data streams shown in this figure combinesConfigurations 1 & 3.

FIG. 11 shows the system configuration of a multicast data streamsgenerator of the data transmission system of this invention FIG. 12shows the system configuration of receiver of the data transmissionsystem of this invention.

FIG. 13 shows the local storage versus transmission bandwidth trade-offrelationship.

FIG. 14 shows an alternative “on-demand” approach of Configuration 1.

FIG. 15 shows an alternative “on-demand” approach of Configuration 2.

FIG. 16 shows an alternative “on-demand” approach of Configuration 3.

DETAIL DESCRIPTION OF PREFERRED EMBODIMENTS

This invention is now described by ways of example with reference to thefigures in the following sections. Even though some of them may bereadily understandable to one skilled in the art, the following Table 1shows the abbreviations or symbols used through the specificationtogether with their meanings so that the abbreviations or symbols may beeasily referred to. TABLE 1 Abbreviations and Symbols Used Abbreviation/Symbol Meaning VOD Video-on-Demand NVOD Near Video-on-Demand QVOD QuasiVideo-on-Demand DINA Distributed Interactive Network Architecture, asdescribed in PCT applications nos. PCT/IB00/001857 & 1858 VCR VideoCassette-Recorder STB Set-Top-Box DDVR Diskless Digital Video Recorder,the client of the system IVOD Instant Video-on-Demand, possible name ofthe system of this invention J no. of anti-latency data segments in anindividual anti-latency data stream (in Configurations 1 to 3) or no. ofdata segments of the leading portion of the data to be transmitted(Configuration 4) K no. of data segments of the data to be transmitted Mno. of anti-latency (Group I) data streams N no. of interactive (GroupII) data streams Q amount of data to be transmitted R time required totransmit Q data over the network S amount of data in each data segment Ttime required to transmit each data segment over the network A no. ofdata streams in Group I(1) streams C no. of data segments in the data ofGroup I(1) streams B no. of data streams in Group I(2) streams D no. ofdata segments in the data of Group I(2) streams E no. of data segmentsin the coarse jump interval

Although the following description refers to the data to be delivered asbeing video, it is expressly understood that data in other forms mayalso be delivered in the system of this invention, for example audio orsoftware programs, or their combination. For instance, this inventionmay be used for deploying an operating system software to a large numberof clients through a network upon request. Further, this invention maybe utilised in data transmission systems handling a large amount of datawith repetitive content, for instance in a video system bus of acomputer handling many complicated but replicated 3D objects, Moreover,this invention may not be limited to the transmission of digital dataonly.

In this invention, a multi-stream multicasting technique is used toovercome the existing problems in VOD systems as described in theBackground section. By using this technique, the users are allowedVCR-liked interactivity without the need to add a storage unit at theSTB and caching all the content that may be viewed by the user on adaily basis.

FIG. 3 shows the system configuration. The multicast streams aregenerated from a multicast server unit. The streams are multiplexed ontothe physical media and distributed to the end users through adistribution network. At each user end, there is a set top box (STB),such as DDVR, that selects a multitude of streams for processing. Byarranging the content to be carried on the streams in a desired manner(as shown later in FIGS. 4-10), the start-up latency may be minimizedwhile the users are provided with interactive functions. The DDVR shouldhave sufficient bandwidth, buffer and processing capability to handlethe multi-streams.

The data transmission system of this invention, which may be called anIVOD system, may look similar to the NVOD system. However, the IVOD andNVOD systems are differentiated by the following points:

-   -   1. how the content is put on the staggered streams,    -   2. how the staggered streams are generated,    -   3, how the DDVR selects and processes the multitude of staggered        streams to restore the content.

The word “staggered” used above and throughout the specification indescribing the data streams refers to the situation that each of thedata streams begins transmission at different times. Therefore, two“frames” of two adjacent data streams, in which the term “frame”represents the repeating unit of each data stream, are separated by atime interval.

In the broad sense, the data transmission method and system may bedescribed as providing two groups of data streams Group I and II. GroupI data streams, which may be term anti-latency data streams, may serveto reduce latency for starting-up the transmission of the required data.Group I data streams may be generated by at least one anti-latencysignal generator. Group II data streams, which may be termed interactivedata streams, may serve to provide the desired interactive functions tothe users. Group II data streams may be generated by at least oneinteractive signal generator. For the interactive functions provide byGroup II data streams, this can be referred to the applicant's PCTapplications nos. PCT/IB00/001857 & 1858, the contents of which are nowincorporated ad references therein. The operation of the interactivefunctions is not considered to be part of the invention in thisapplication and the details will not be further described here.

The operation of the IVOD system can best be illustrated by thefollowing examples, Each of these examples is a valid IVOD system butthey all differ in details with various tradeoffs. These examples onlyintend to show the working principles of IVOD systems and are not meantto describe the only possible ways of IVOD operation.

In the following examples, the content to be transmitted having a totalamount of data Q requires a total time R to be transmitted over thenetwork. The content, for example, may be a movie. The Q data is brokenup into K segments each having an amount of data S. Each data segmentrequires a time T to be transmitted over the network. Q and S may be inthe unit of megabytes, while R and T are units of time. For the sake ofconvenience, the data segments of the Q data are labelled from 1 to Krespectively. Therefore, $K = {\frac{R}{T}.}$The Q data may be divided into a leading portion and a remainingportion. In most cases, the Group I anti-latency data streams maycontain the leading portion only. The Group II interactive data streamsmay contain the remaining portion or the whole set of the Q data, andthis may be a matter of design choice to be determined by the systemmanager.

It should be noted that the system may still work if the individual datasegment contains different amounts of data than each other, providedthat they all required a time T for transmission. This may be achievableby controlling the transmission rate of the individual data segment.However, individual data segments may be preferred to have same amountof data S for the sake of engineering convenience. On the other hand, itmay be relatively more difficult to implement the system for each of thedata segments to have same amount of data S but with differenttransmission times.

Although the following description refers to the transmission of one setof data, for instance, a movie, it should be apparent to one skilled inthe art that the method and system may also be adapted to transmit acertain number of sets of data depending on, for example, the bandwidthavailable.

A. Dual Streaming IVOD System (Configuration 1)

The simplest IVOD system is characterized by a dual-streaming operation.Dual streaming means that each user will tap into at most two of themulticast data streams at any time. Most of the time, the user may onlybe tapping into one data stream.

The segments are put onto the staggered streams as shown in FIG. 4.There ate two groups of staggered streams. For Group I anti-latency datastreams, there are J segments on each frame. T is the anti-latency timeinterval and may also be the upper bound for the start-up latency of theIVOD system. Each anti-latency data stream is preferably staggered bythe anti-latency time interval T, although the anti-latency timeinterval may be set at any desired value other than T.

In this particular example, J is equal to 16 and T is 30 seconds. So theframes in each of the Group I data streams repeat themselves after atime of JT being 8 minutes. There are a total of M streams in Group I.

For Group II interactive data streams, there are N interactive datastreams, with each of them being staggered by an interactive timeinterval. Although the interactive time interval may again be set at anydesired value, the interactive time interval is preferably to be JT(i.e. 8 minutes in this example) for the sake of engineeringconvenience. Assuming the length of the content is R (say R equals to120 minutes), then there should be at least a total of$\frac{R}{JT} = 15$streams in Group II. N may be larger than this value but this may createunnecessary network load.

When a user starts to view the content at time t_(i), the DDVR at theuser end will select one stream from Group I (Stream Ii) and one streamfrom Group II (Stream IIj) to tap into. Once the client connects toStreams Ii and/or IIj, the data streams are processed by the DDVR, theclient, and the segments are buffered according to the segment sequencenumber. The availability of the Group I staggered streams with streaminterval T minimises the start-up latency to be equal to T.

Alternatively, the user or the client may tap into Stream Ii only andawait all of the data in the leading portion to be received by theclient before tapping into Stream IIj. After the DDVR has latched onto aGroup I stream, the DDVR will immediately look for a suitable Group IIstream for merging. In this particular case, each Group II data streamsmay preferably contain only the remaining portion of the Q data.

The method on merging of data streams can be found in the DINAtechnology. After merging, the Group I stream may no longer be neededand the DDVR may then rely solely on Stream IIj for subsequent viewing.This may be the optimised alternative only to minimise network load.

It should be noted that once the system has started, the user couldinitiate the following interactive requests, including pause and resume,rewind, and slow motion playback. However, forward and backward jumpsmay be restricted to jump to any one of the Group I or Group II streams(at any particular time). This problem may be resolved by fine-tuningthe parameters of the system. For instance, Group I data streams may bedesigned to contain content that relatively few people wish to look at,like copyright notices.

The total number of streams in this type of IVOD system is$M + {\frac{R}{JT}.}$The optimal system configuration is calculated to be${M = {N = {J = \sqrt{\frac{R}{T}}}}},$and the optimal total number of streams is given by$2{\sqrt{\frac{R}{T}}.}$B. Dual Streaming IVOD System (Configuration 2)

The second example of IVOD system is also characterised by adual-streaming operation. Again, the content is broken up into Ksegments of regular length T, and the segments are labelled from 1 to Krespectively. The segments are put onto the staggered streams in apattern as shown in FIG. 5.

In this configuration, there are also two groups of staggered streams.For Group I anti-latency data streams, there are J segments on eachframe and the frames are repeated on each stream. In this example, J isagain chosen to equal to 16 and T is 30 seconds. This configurationcharacterises in that one of the Group I data streams, Stream I1,contains only Segment 1 repeated in all time slots. Streams I2 to I9contain Segment 2 to 17. In another words, Segment 1 may be viewed as aleading data stream containing the leading segment of the leadingportion. Segments 2 to 9 may be considered as a plurality of finishingdata streams containing the rest of the leading portion in the number ofJ segments. The Group I stream interval may be chosen to be any desiredvalue, but is again preferably set to be T due to same reason as inConfiguration 1. Streams I2 to I9 repeat themselves after JT (i.e. 8minutes in this example).

In this particular example, there should be at least a total of$M = {\frac{J}{2} + 1}$streams in Group I for the smooth merging of the leading data stream andthe finishing data stream. M may be less than this value but then theuser may suffer from the phenomenon of “dropping frames”. M may belarger than this value but this may create unnecessary network load.This may be a matter of design choice that should be left to bedetermined by the system administrator.

Although the leading segment shown in FIG. 5 contains only one leadingsegment, it should be understood that the leading data stream maycontain more than one leading segment, for example, segments 1-4. Theabove conditions of the Group I anti-latency data streams of thisConfiguration 2 may then be viewed as T being four times as long, whilethis change may not affect the Group II interactive data streams. Insuch cases, the user may suffer from a larger start-up latency. On theother hand, M may be substantially reduced and could be$M = {\frac{J}{8} + 1}$for the smooth merging of the leading data stream and the finishing datastream. Although this may be less desirable, this may be again a matterof design choice that should be determined by the system administrator.

For Group II streams, the arrangement and the set up of the streams maybe the same as in the previous example, and the same setting andvariations is also applicable to this application.

When a user starts to view the content at time ti, the DDVR at the userend will immediately tap onto Stream I1. The start-up latency should bebounded to T as the leading segment is repeated every time period T.After all data in the leading segment is received, the DDVR will alsotap onto one of the Group I finishing data streams, I2 to I9 in thiscase. For the ease of illustration, Stream Ii is chosen. As analternative, the DDVR may tap onto the leading data stream and one ofthe finishing data streams simultaneously if the DDVR is capable ofdoing so. In the latter case, both streams are processed by the DDVR andthe segments are buffered according to the segment sequence number.

The DDVR will also tap onto one of the Group II streams (in this caseStream II2). The time at which the DDVR taps onto the Group II streamsis a matter of choice—it may do so:

-   -   1. immediately after tapping onto the leading data stream Stream        I1    -   2. immediately after tapping onto one of the finishing data        streams    -   3. after all data in the leading portion contained in Group I        data streams is received by the DDVR

Generally, the DDVR should tap onto one of the Group II streams at leastright before all data in Group I streams is received or played by theclient,

After all data in the Group I data streams has been buffered andreceived, the DDVR then merge onto one of the Group II streams. Themerging technique is described in the DINA technology. After merging,the Group I stream (i.e. Stream Ii) may no longer be needed and the DDVRmay rely only on the Group II stream for subsequent viewing to savebandwidth. Any allowable interactive request received at any time can beentertained as previously shown in the DINA technology.

The total number of streams in this IVOD system is$\quad{\left( {\frac{J}{2} + 1} \right) + {N.}}$As N preferably equals to $\frac{R}{JT},$the optimal configuration is given by$J = {\sqrt{2K} = {\sqrt{\frac{2R}{T}}\quad{and}}}$the optimal total number of data streams of the system is equal to${\sqrt{2K} + 1} = {\sqrt{\frac{2R}{T}} + 1.}$C. Dual Streaming IVOD System (Configuration 3)

The third example of IVOD system is also characterised by adual-streaming operation with the segments arranged in a hierarchicalperiodic frame structure with a size based on the Fibonacci numbers.Again, the content is broken up into K segments of regular length T, andthe segments are labelled from 1 to N respectively. The segments are putonto the staggered streams in a pattern as shown in FIG. 6. There arealso two groups of staggered streams.

In this configuration, Group I data streams contains the data in theleading portion having J segments. Note that this J is slightlydifferent from those used in Configurations 1 and 2. There are M Group Idata streams labelled from 1 to M. For each of the Group I stream I_(m),where m is an integer representing the stream number, the frame periodis given by F_(m) where F_(m) is the m-th Fibonacci number. The firstfew Fibonacci numbers are shown in Table 2. The Fibonacci numbers havethe property that F_(y)=F_(y−1)+F_(y−2), where y is an integer startingfrom 3. The Group I stream interval is again preferably set to be T asin Configurations 1 and 2. There are 12 Group I streams in this example.For Group II streams, the arrangement and the set up of the streams aresimilar to the previous examples, but for the sake of illustration, theGroup II streams starting at Segment 81. TABLE 2 Fibonacci numbers. j 12 3 4 5 6 7 8 9 10 11 12 Fj 1 2 3 5 8 13 21 34 55 89 144 233

The principle of operation cal best be explained by the following eventhough many different variations are possible. When a user starts toview the content at time t, the DDVR at the user end will immediatelytap onto two Group I data Streams I1 and I2. Both Segment 1 from StreamI1 and Segment 2 or 3 from Stream I2 will be buffered. Now there are twosegments in the buffer, and Stream I2 has a frame size of 2, Stream I2can be smoothly merged into using the methodology as described in theDINA technology. Thus, the startup latency should be bounded to T. AfterSegment 1 has been received, DDVR, will tap onto Streams I2 and I3.Since there are only two segments in Stream I2, Segment I3 will eitherbe buffered during the time when Segment 2 is being received, or Segment3 will be available on Stream I2 immediately following Segment 2'scompletion. After both Segments 2 and 3 have been received out, the DDVRwill tap onto Streams 3 and 4, and the process continues as before. Bothstreams are processed by the DDVR and the extra segments are bufferedaccording to the segment sequence number.

In the above discussion, the DDVR is presumed to connect to the 1^(st)and 2^(nd) data streams for starting-up the movie such that the latencyis bounded to be T. However, if the user wishes, he may choose to firsttap onto the m^(th) and (m+1)^(th) data streams, wherein m is any numberlarger than 1. The user can still view the content but may be sufferingfrom larger latency. This may be preferred by some users who wish toskip the first few minutes of a movie, for example.

Further, as in Configuration 2, each of the data segments shown in FIG.6 may contain more than one of the K segments of the data to betransmitted. For example, each of the data blocks as shown in FIG. 6 mayin fact contains 5 data segments. The above conditions of the Group Ianti-latency data streams of this Configuration 3 may then be viewed asT being five times as long, while this change may not affect the GroupII interactive data streams. In such cases, the user may suffer from alarger start-up latency.

As an alternative, m may not have to start from 1, provided that theusers can accept a larger start-up latency and trimming of data. Forinstance, the system administration may remove the first four Group Idata streams in FIG. 6. In the case of software transmission, thisarrangement may not be allowed, otherwise the user may not be able toreceive the complete software. However, in the case of videotransmission, this may be acceptable, provided that the trimming of thevideo is accepted by the copyright owner.

By constructing the frame period of the streams according to theFibonacci number F_(m), after Stream I_(m−1) has been received, the DDVRwould have buffered at least F_(m)=F_(m−1)+F_(m−2) time slots. Using themerging methodology as described in the DINA technology, Stream I_(m−1)can be smoothly merged into Stream I_(m) as the frame size of StreamI_(m) is exactly F_(m).

It is noted that after m segments are received, exactly m more segmentswould have been buffered because of the dual streaming arrangement. TheDDVR preferably begin to merge onto one of the Group II streams, at thevery least to save bandwidth, once the number of segments buffered hasexceeded the size of the Group II stream interval (in this case 80segments are needed for an 8-minute Group II stream interval). Aftermerging, the Group I stream (i.e. Stream Ii) may no longer be needed andthe DDVR may rely only on the Group II stream for subsequent viewing.Any allowable interactive request received at any time can beentertained as described in the DINA technology.

There is no optimal parameter for this Configuration. To save bandwidth,there should be no Group II data stream. However, users may only be ableto enjoy limited interactivity depending on how much of the data isreceived and buffered in the DDVR. Specifically, the user may performpause, resume, rewind, slow motion, and backward jump, but the user maynot be able to perform fist forward and forward jump functions.

The number of Group I data stream required, M, is determined by thenumber of Group II data streams, which is in turn to be determinedmanually according to various system factors. With a given start-uplatency A, the total number of streams required in this IVOD system canbe found by looking up the necessary frame size from a table containingthe relevant Fibonacci numbers. The minimal number of data streamsshould be M such that $F_{M} \geq \frac{2K}{N}$for the smooth merging between the individual Group I data streams. Mmay be less than this value but then the user may suffer from thephenomenon of “dropping frames”. M may be larger than this value butthis may create unnecessary network load. This may be a matter of designchoice that should be left to be determined by the system administrator.

Using this technique, the start-up latency T can be as low as 6 seconds(with an average of 3 sec), with a Group II stream interval of 8minutes. The total number of streams required for a 2-hour content canbe as low as only 26.

An alternative arrangement for the Group I streams is shown in FIG. 7.Note that the frame structure of the streams only follows the Fibonaccisequence after Stream 4.

D. Multi-Streaming IVOD System (Configuration 4)

The previous three examples show several possible implementations of theIVOD systems with dual-streaming. In fact, there are many more possibleimplementations of the IVOD system, each depending on a differentarrangement of the segments in different streams, and on the maximumnumber of streams that the end user DDVR must simultaneously tap intoand process. The above three examples are relatively simple tounderstand and implement, but the number of streams used are not optimalbecause of the restriction that only two maximum streams are tapped intoand processed at any given time. In the current configuration, amulti-streaming IVOD system with the optimal number of streams isdemonstrated.

This configuration is realized with the assumption that all the streamsthat carried the content are all tapped into and processed by the enduser DDVR. FIG. 8 shows a possible optimal arrangement of the initialthirty segments or so in various streams based on the harmonic seriesapproach. The segments are labelled 1, 2, 3, . . . etc . . . Thenecessary and sufficient condition for guaranteeing the start up latencyto be bounded within one slot interval using only an optimal number ofstreams is that the placement of the segments should be done in such away that Segment (i.e. the j-th segment from the beginning of theleading portion) should be repeated in every j time slots or less, forall j from 1 to J. For example, Segment 1 should be repeated in everytime slot in order that the start-up latency is bounded within oneanti-latency interval T. Therefore, there may be a whole stream taken upby Segment 1 alone. Segment 2 should be repeated in every other timeslot in order that the second segment is available immediately after thefirst segment has been received. Similarly Segment 3 should be repeatedin every three time slots and Segment j should be repeated in every jtime slots. For j>1, the segment j may be repeated more frequently thanrequired. That is, the e segment is repeated by an anti-latency timeinterval ≦jT. Note that the definition of the term “anti-latency timeinterval” in this Configuration 4 is different from that inConfigurations 1 to 3.

The exact stream where the segments are placed does not matter as we areassuming that all streams are being received and processed by the DDVR.The segments are buffered by the DDVR and rearranged into a suitableorder. The unfilled slots in FIG. 9 can contain any data or even be leftunfilled.

As in Configuration 3, there is no optimal parameter for thisConfiguration. To save bandwidth, there should be no Group II datastream, in which users may only be able to enjoy limited interactivitydepending on how much of the data is received and buffered in the DDVR.This may not be desirable. The number of Group I data stream required,M, is determined by the number of Group II data streams, which is inturn to be determined manually according to various system factors. Thetotal number M of streams required for carrying the J time slots can befound by summing the harmonic series from 1 to J, such that$M \geq {\sum\limits_{j = 1}^{j = J}{\left( \frac{1}{f} \right).}}$This is approximately equal to γ+1n(J), where γ is the Euler's constant(˜0.5772 . . . ) when J is large. Even though J can be set to anydesired number larger than $\frac{K}{N},$for the sake of engineering convenience, it is preferred to have${J = \frac{K}{N}},$which equals to the number of data segments in the interactive timeinterval. This is the optimal number of streams required to bind thestart-up latency to within one slot interval.

Further, as in Configurations 2 and 3, each of the data segments shownin FIG. 8 may contain more than one of the K segments of the data to betransmitted. For example, each of the data blocks as shown in FIG. 8 mayin fact contains 10 data segments. The above conditions of the Group Ianti-latency data streams of this Configuration 4 may then be viewed asT being ten times as long, while this change may not affect the Group IIinteractive data streams. In such cases, the user may suffer from alarger start-up latency.

Again, as an alternative, j may not have to start from 1 but any numberlarger than 1, provided that the users can accept a larger start-uplatency. For instance, the system administration may remove the firstthree Group I data streams in FIG. 8. In the case of softwaretransmission, this arrangement may not be allowed, otherwise the usermay not be able to receive the complete software. However, in the caseof video transmission, this may be acceptable, provided that thetrimming of the video is accepted by the copyright owner.

Alternatively, j may start from any number larger than 1, for example,5. However, this merely means that the first data segment in FIG. 8 isbeing repeated by an anti-latency time interval of 5 T instead of T,with subsequent j data segment being repeated by an anti-latencyinterval of (5+j)T. This alteration should be obvious to one skilled inthe art.

To create an IVOD system based on this optimal multi-streamingcondition, the streams are again divided into two groups, Groups I andII. The segment arrangements of the Group I streams has been shown inFIG. 8. The segment arrangements of the Group II streams are same asthose shown in any one of FIGS. 4 to 6. When a user initiates a viewingrequest, all of the Group I streams should be received and processed bythe DDVR. In addition, a suitable Group II stream will also be tappedinto and processed. This allows a smooth merging of the Group I streams(where the initial m segments are placed) into a single Group II stream.As an alternative, the tapping onto the Group II stream may await untilall data in the leading portion contained in Group I streams is receivedby the client DDVR.

After one Group II stream interval (which is again set to be JTintentionally in this case), all the Group I streams may no longer beneeded and only a single Group II stream is needed for the continuousviewing by the user. Like before, through the use of a plurality ofGroup II streams, once the system has started, the user could initiateany of the allowable interactive requests, including pause and resume,rewind, and slow motion playback.

As in configuration 3, it is possible to create an IVOD system entirelybased on the group I streams as illustrated previously. By doing that,the number of streams can be reduced with minimised start-up latency.However, users of such systems may be restricted to limitedinteractivity, as discussed in Configuration 3. Furthermore, the buffersize at the DDVR must be as large as the entire content, and theprocessing capability of the DDVR is more demanding for the currentconfiguration. The decision regarding which system to deploy should beleft as an option to the service provider.

It should further be noted that this multi-streaming arrangement may beused to replace the Fibonacci stream sequences (Group I streams) inConfiguration 4 to further reduce the number of streams required. Thecondition is that the DDVR should have enough buffer and processingpower to buffer and process the received data. Table 3 in the up-comingsection lists some results in all various configurations.

A non-optimal multi-streaming arrangement known as the logarithmicstreaming is shown in FIG. 9.

E. Mixed Dual-Dual/Multi-Dual Streaming IVOD System (Configuration 5)

Configurations 3 and 4 demonstrate an IVOD system with a very shortstart-up latency in comparison with Configurations 1 and 2 using acomparable numbers of streams. But Configuration 1 or 2 also has anadvantage over Configuration 3 or 4—they allow coarse jumping fromstream to stream during the first stream interval while Configuration 3or 4 does not. In real life, the first few minutes of a content sourceusually contain a lot of header and information that many users may wantto skip by jumping. Therefore, it is desirable to provide at least alimited jump capability for the users.

By combining Configuration 1 or 2 and 3 or 4, one may create an IVODsystem with a limited jump capability even without the help of anexternal unicast stream. This IVOD system contains three groups ofstaggered streams, namely, Group I(1) and I(2). Group I(1) data streamshas a total number of A data streams responsible for distributing datahaving C segments. Similarly, Group I(2) data streams has a total numberof B data streams responsible for distributing data having D segments,with each of the B data streams being staggered by a coarse jumpinterval. There are E data segments in the coarse jump interval.

To give a more concrete example, let us assume a segment size T of 6seconds. Let Group I(1) contain the first 7 Fibonacci streams as shownin Configuration 3. Let Group I(2) contain the 8 Group I streams asshown in Configuration 1 running from Segment 11 to 90, with a staggeredstream interval of 10 segments. Note that Group I(2) can contain datasegments running from 1 to 90, although it may seem to be redundant.Accordingly, the frame period of Group I(2) streams is 80 segments or 8minutes, and this is the coarse-jump frame period allowing the user toperform a coarse-jump interactive when the DDVR is connecting to theGroup I data streams. Group II streams of Configuration 5 are identicalto the Group II streams of the other configurations. In this particularexample, each of the Group II streams starts from Segment 1 and goingall the way to the end of the entire content. The arrangement of thestreams and segments are shown in FIG. 10.

With this hierarchical arrangement of streams and segments, it can beseen that the user can start at any time with a start-up latency of onesegment (6 seconds in this example). Furthermore, users can coarse jumpat any time within the start-up period, the time when the DDVR connectsto the Group I streams The start-up period is preferably defined to bethe time within the first Group II stream interval (that is, from the0-minute point to the 9-minute point) as in previous configurations,Each coarse jump is 1 minute apart from each other, which is determinedby the coarse-jump frame period. Thus, the users can skip the headersusing this arrangement. The total number of streams needed for holding atwo-hour content in the particular example shown in FIG. 10 is 30.

Although FIG. 10 only shows the combination of Configurations 3 and 1 inGroup I data streams, it should be obvious to those skilled in the artthat the following combinations are also possible:

-   -   a. Configurations 4 and 1    -   b. Configurations 3 and 2    -   c. Configurations 4 and 2

The number of Group I(1) data streams required, i.e. A, may bedetermined by taking E as $\frac{K}{N}$configurations 3 and 4. That is, if Configuration 3 is used in GroupI(1), there should be A data streams in Group I(1) such that F_(A)≧2E.If Configuration 4 is used, then$A \geq {\sum\limits_{c = 1}^{c = C}{\frac{1}{c}.}}$As in Configuration 4, C, the total number of data segments to betransmitted in Group I(1), preferably equals to E. The sameconsiderations on the number of data streams required as inConfigurations 3 and 4 may also be applicable to Group I(1).

The decision regarding which combination to deploy should again be leftas an option to the service provider.

Alternative Arrangements of Configurations 1, 2, and 3

For a VOD system built to serve a large number of users, theanti-latency data streams as described above may be preferred to begenerated continuously such that these streams present in the systemcontinuously, or at least during the prime time (let say, 6-11 pm), forusers to tap into. On the other hand, if there are relatively few usersin the system, say several thousand of users, or the particular programbeing delivered is not requested very frequently, some further bandwidthmay be saved if the anti-latency data streams are generated upon requestof the users. This alternative approach may be beneficial toConfigurations 1, 2, and 3. These are shown in FIGS. 14, 15, and 16. Inthese figures, the data segments in grey represent those data segmentsor data streams that are “turned-on” upon requests from the users.

For Configuration 1, each of the Group I anti-latency data streams isstill staggered by an anti-latency stream interval T. However, asdescribed above, not all of the Group I anti-latency data streams may bepresent or “turned on” at all times. Instead, they are generated uponrequests from the users, and such requests are “batched” within T. Itmeans that if the user raises a request for said data within ananti-latency stream interval, the anti-latency data stream are generatedat the next earliest anti-latency stream interval. As an example,referring to FIG. 14, consider users request the data time equals to 2T, 3 T, and 16 T. In this context, it means that users request the databetween the interval 1 T to 2 T, 2 T to 3 T, and 15 T to 16 T,respectively. Accordingly, in this example, only streams 2, 3, and 16are generated, or “turned on”, in a snap shot of the data streams of thesystem, while streams 1 and 4-15 are “tamed off”. As shown in FIG. 14,it may seem that the resulting Group I data streams do not have aregular stream interval.

This concept may also be extended to Configurations 2 and 3.

Accordingly, in Configuration 2, not all of the leading data segment inthe leading data stream, nor all of the finishing data streams may be“turned on” at all times. They are “turned on” upon requests from theusers. An example is illustrated in FIG. 15. It should be obvious to oneskilled in the art that each of the leading data segment relates to acorresponding finishing data stream, and this may assist in achievingthe goal by ordinary programming technique. The corresponding finishingdata stream should also be generated at the time when the leading datasegment is generated.

Similarly, in Configuration 3, not all of tie F_(m) segments distributedin the Group I data streams may be “turned on” at all times. An exampleis illustrated in FIG. 16. Again, it should obvious to one skilled inthe art the relationship among the group data segments, which may assistin achieving the goal by ordinary programming technique. All of thecorresponding Fm segments should be generated at the appropriate timewhen the client raises the request. Specifically, subsequent F_((m+1))segments should be generated before all data in the preceding F_(m)segment is received by the client.

Further, once the DDVR has merged with the Group II data streams, theanti-latency data streams can be terminated to further minimize thebandwidth usage.

As one of the basic requirements in Configuration 4 is that the usershould be able to be connected to all of the Group I data streams, this“on-demand” approach does not appear to be applicable to Configuration4.

Although this alternative approach may seem to save some additionalbandwidth in comparison with the original Configurations, they may beless preferred due to several reasons. First, it may increase theworkload and the processing requirement in the server side, and thecomplexity in programming and implementation. Second, this may lead tothe overload of the resulting system if care is not taken at the designstage in allocating the required bandwidth. Third, this alternativeapproach will in fact become the original Configurations when the numberof requests from the user is large.

Additional Features of Individual Data Segments

To facilitate the change over of the streams without incurringsubstantial loss of data during the transition, the beginning of eachdata segment, which can be termed the head portion, may containduplicated data appearing in the tail portion of the immediate precedingsegment. The amount of data to be carried in the duplicated portion maybe T′ (normalized with respect to the data rate of the stream), where T′is the delay that may incur during the change over of the streams.Typically, T′ may be in the order of 10-20 milliseconds.

IVOD System Requirements

There are several system requirements:

-   -   a. The server needs to generate the appropriate multi-streams in        patterns that have been illustrated in any one of Configurations        1 to 5 or such patters as may be designed    -   b. The distribution network should have sufficient capacity to        carry all the required streams to the end user DDVR.    -   c. The end user DDVR should have sufficient bandwidth, buffer        and processing capability to handle the multi-streams. The DDVR        should also have sufficient storage to buffer at least one Group        II stream interval of data from the multi-streams.

These factors may affect the service provide in choosing whichconfiguration to deploy.

Concept of Diskless DVR

Generally, the receiver DDVR may have a processor for raising requestfor the content, and a connector for connecting the Group I and II datastreams.

For Configurations 1 and 2, it may be necessary for the DDVR to includea buffer for buffering the received Group I data streams. ForConfigurations 3 and 4, the DDVR should include a buffer for bufferingthe data received from Group I data streams. The processor will thenalso be responsible for processing the data to put the data in a properorder.

With the multi-streaming concept, the receiving device, the receiver, atthe user end may not need to have any hard disk storage. The only memoryor buffer needed at the STB, the client/receiver, may be the RAM(random-access memory) to buffer one stream interval equivalent of data.Assuming a stream interval of 8 minutes, this requires roughly 60 MB ofRAM for a 1 Mb/s MPEG-4 stream. This technique can be contrasted withmany VOD techniques that require a large hard disk storage (sometimes aslarge as 60 GB) at the STB. Therefore, this IVOD system also appears tothe users like a diskless DVR. However, the system provider may chooseto provide addition storage to the users in the form of hard disk orother non-volatile medium or use such other equipment as may benecessary to buffer and receive the data.

It should be further noted that there might be several options for theDDVR.

First, the DDVR may be configured such that it plays the received dataat a slower rate than the transmission rate of tie data. Thetransmission rate may be expressed in $\frac{S}{T}$under the condition that each data segment contains same amount of data.In such cases, the DDVR may be required to have a larger buffer size toaccommodate the un-received data.

Secondly, the DDVR may be configured to contain or pre-fetch at least aportion of the data in the Group I data streams, i.e. the leadingportion of the data to be transmitted, for a certain period of time inits local buffer. Such data may be termed “pre-fetched data”. Ifdesired, the pre-fetched data may contain all of the data contained inthe Group I data streams provided that the DDVR has adequate buffersize. In one extreme, the content of the data to be transmitted may berefreshed every day for video data, or more than once per day. In thisparticular example, it may be necessary for the pre-fetched data to berefreshed every day. The refresh time may be set at any desired valuethat may range from one day to even one year. It may be preferable torefresh the pre-fetched data during an off-peak period, like aftermidnight (for instance, from 01:00-06:00), or between 10:00 to 15:00,wherein the network activities resulting from clients' requests may beat a minimum. This process may be initiated by the anti-latency signalgenerator, the interactive signal generator, or by the client itself bya routine call procedure. In doing so, the latency time and the totalnumber of data streams required in the network may be further reduced.This may be particularly important for VOD systems transmitting a largenumber of sets of data.

Trade-Off of Space-Time-Bandwidth

There is a tradeoff relationship for different configurations of theIVOD systems of this invention among buffer storage at DDVR (space),start-up latency (time) and streams (transmission bandwidth) required.This is shown in Table 3 and ether illustrated in FIG. 13.

In FIG. 13, the Vertex 1 may be realised as current VOD systems with allthe data being sent and then stored in the STB, whether the clientraises a request for the data or not. In such a case, the STB shouldhave a relatively large buffer size. This may increase the manufacturingcosts of the STB. Vertex 2 may represent the systems as described inConfigurations 1-5. Under such a configuration, the requirement on theSTB may be minimal while the system may be more demanding on thebandwidth. Vertex 3 may represent a hybrid system of Vertexes 1 and 2.

The decision on which “Vertex” to choose may be a matter of designchoice depending on various factors including the bandwidth available,the specification of the STB, local requirements on latency andinteractivity, and so on. TABLE 3 Tradeoff among Buffer Storage (Space),Startup Latency (Time) and Streams (Transmission Bandwidth) RequiredNumber of Streams Required Staggered Interval 6 min 7 min 8 min 10 min15 min Content Size L = 1 hr Dual-Streaming Configuration (1) T = 30 sec22 23 24 26 34 (coarse jump = 1 minute) Configuration (2) T = 30 sec 1717 17 17 20 (coarse jump = 2 minutes) Configuration (3) T = 6 sec 20 1918 17 16 (no coarse jump allowed) Configuration (5) T = 6 sec 23 23 2323 26 (coarse jump = 1 minute) Configuration (5) T = 6 sec 22 22 21 2021 (coarse jump = 2 minute) Multi-Streaming Optimal Configuration T = 6sec 15 14 13 12 10 Configuration (4) (no coarse jump allowed) OptimalConfiguration T = 6 sec 20 20 20 20 23 (coarse jump = 1 minute) OptimalConfiguration T = 6 sec 18 18 17 16 17 (coarse jump = 2 minute) ContentSize L = 2 hr Dual-Streaming Configuration (1) T = 30 sec 32 31 31 32 38(coarse jump = 1 minute) Configuration (2) T = 30 sec 27 25 24 23 24(coarse jump = 2 minute) Configuration (3) T = 6 sec 30 27 26 23 20 (nocoarse jump allowed) Configuration (5) T = 6 sec 33 31 30 29 32 (coarsejump = 1 minute) Configuration (5) T = 6 sec 32 30 28 26 25 (coarse jump= 2 minute) Multi-Streaming Optimal Configuration T = 6 sec 25 22 20 1814 Configuration (4) (no coarse jump allowed) Optimal Configuration T =6 sec 31 29 27 27 28 (coarse jump = 1 minute) Optimal Configuration T =6 sec 28 26 24 22 21 (coarse jump = 2 minute)Application to Cable, Satellite and Terrestrial Broadcasting Systems

The IVOD systems of this invention may find immediate applications inexisting cable TV, terrestrial broadcasting, and satellite broadcastingsystems. With very little modification on the existing infrastructure,the non-interactive broadcasting, or NVOD systems may be converted intoan IVOD system. Both analogue and digital transmission systems can takeadvantage of the multi-streaming concept. However, the discussions belowwill only describe system configurations for digital transmissionsystems.

In these digital broadcasting systems, the RF transmission bands areusually divided into 6 MHz (NTSC) or 8 MHz (PAL) channels. There can beover a hundred channels in cable TV, terrestrial or satellitebroadcasting system. FIG. 11 shows a typical system configuration forthis multi-streaming system. It is very similar to existing broadcastingsystem. Only the transmission unit at the head end, which may be calledan anti-latency device, and reception unit at the user end, theclient/receiver, may need to be modified. At the head end, instead ofsending analog signals in each channel, digital signals such as QAM aretransmitted. Typically, one can put in 30-40 Mb/s into an RF channel,Assuming a 2-hour content, one can first use MPEG-4 or other compressionalgorithms to convert the analog signal into a digital stream with a bitrate of roughly 1 Mb/s, Using the Fibonacci dual-streaming(Configuration 3) or the optimal harmonic multi-streaming IVOD concept(Configuration 4), one can place 30 to 40 streams of the IVOD streamsinto a single RF channel. The contents are put into different RFchannels according to the PAL/NTSC/SECAM standard to maintaincompatibility with the existing broadcasting system, and each RF channelcan contain a few hours of contents.

At the user end, the set top box should be RF-tuned to the particular RFchannel of interest. Then the cable modem would filter out the 30-40Mb/s digital streams and decode two streams at a time (for Fibonaccidual-streaming systems) or decode all the harmonic multi-streams (forharmonic multi-streaming systems). FIG. 12 shows the block diagram ofthe STB/cable modem. The STB/cable modem is similar to other STB/cablemodems except for its processing unit which can process at least 2multi-streams simultaneously rather than a single stream. The decodedstreams would be buffered in the STB and the content would bereconstructed according to the sequence number of the segments. With thehundreds of channels available in a typical broadcasting system, thistranslates to over 200 hours or more of fully interactive programsavailable to an infinite number of users.

While the preferred embodiment of the present invention has beendescribed in detail by the examples, it is apparent that modificationsand adaptations of the present invention will occur to those skilled inthe art. It is to be expressly understood, however, that suchmodifications and adaptations are within the scope of the presentinvention, as set forth in the following claims. Furthermore, theembodiments of the present invention shall not be interpreted to berestricted by the examples or figures only.

1. A method for transmitting data over a network to at least one clienthaving a latency time to initiate transmission of said data to theclient, including the steps of: generating at least one of anti-latencydata stream containing at least a leading portion of said data forreceipt by the client; and generating at least one interactive datastream containing at least a remaining portion of said data for theclient to merge into after receiving at least a portion of ananti-latency data stream. wherein: the leading portion of said data canbe generated at regular anti-latency stream intervals; and is generatedat the next earliest anti-latency stream interval after at least oneclient raises a request for said data.
 2. The method of claim 1,wherein: said data requiring a time R to be transmitted over the networkis fragmented into K segments each requiring a time T to transmit overthe network; the anti-latency data streams includes M anti-latency datastreams, wherein each of the M anti-latency data stream containssubstantially identical data can be generated at regular anti-latencytime intervals; and are generated at the next earliest anti-latencystream interval after the client raises a request for said data; theinteractive data streams includes N interactive data streams, whereineach of the N interactive data stream is repeated continuously withinsaid interactive data stream, and each successive interactive datastream is staggered by an interactive time interval.
 3. The method ofclaim 2, further including the steps of: connecting the client to the Manti-latency data stream generated for the client when the client raisesthe request for said data; connecting the client to any one of the Ninteractive data streams; and terminating the M anti-latency data streamgenerated for the client after the client is connected to one of the Ninteractive data streams.
 4. The method of claim 1, wherein: said datarequiring a time R to be transmitted over the network is fragmented intoK segments each requiring a time T to transmit over the network; theanti-latency data streams includes M anti-latency data streamsincluding: I. a leading data stream that contains at Least one leadingsegment of the leading portion of said data can be generated at regularanti-latency time intervals; and are generated at the next earliestanti-latency stream interval after the client raises a request for saiddata; II. a plurality of finishing data streams, wherein each of thefinishing data streams that: contains the rest of the leading portion ofsaid data; corresponds to one of the leading segments; and are generatedwhen the corresponding leading segment is generated.
 5. The method ofclaim 4 wherein the interactive data streams includes N interactive datastreams, wherein each of the N interactive data streams is repeatedcontinuously within said interactive data stream, and each successiveinteractive data stream is staggered by an interactive time interval. 6.The method of claim 4, further including the steps of: connecting theclient to the leading data segment generated for the client when theclient raises the request for said data; subsequently connecting theclient to the corresponding finishing data stream; connecting the clientto any one of the N interactive data streams; and terminating theleading data segment and the corresponding finishing data streamgenerated for the client after the client is connected to one of the Ninteractive data streams.
 7. The method of claim 1, wherein: said datarequiring a time R to be transmitted over the network is fragmented intoK segments each requiring a time T to transmit over the network; theinteractive data streams includes N interactive data streams, whereineach of the N interactive data stream is repeated continuously withinsaid interactive data stream, and wherein each successive interactivedata stream is staggered by an interactive time interval $\frac{KT}{N};$the anti-latency data streams includes M anti-latency data streams, suchthat an m^(th)˜anti-latency data stream has F_(m) segments, whereinF_(m) is an m^(th) Fibonacci number; the F_(m) segments can be generatedat regular anti-latency stream intervals; the first F_(m) segment isgenerated at the next earliest anti-latency stream interval when theclient raises a request for said data; and subsequent F_((m+J)) segmentsare generated before all data in the preceding F_(m) segment is receivedby the client.
 8. The method of claim 7, farther including the steps of:connecting the client to at least the m^(th) and (m+l)^(th) anti-latencydata streams when the client raises a. request for said data; bufferingthe data in at least the m^(th) and (m+l)^(th) anti-latency data streamsin the client; subsequently connecting the client to successiveanti-latency data streams; and repeating the previous steps until alldata in the leading portion is received by the client.
 9. The method ofclaim 8, further including the step of: connecting the client to any oneof the N interactive data streams after all data in the leading portionis received by the client; and terminating the M anti-latency datastreams after the client is connected to one of the N interactive datastreams.
 10. A method for transmitting data over a network to at leastone client including the steps of generating a plurality of anti-latencydata streams, the anti-latency data streams include: a leading datastream that contains at least one leading segment of the leading portionof said data can be generated at regular anti-latency time intervals;and are generated at the next earliest anti-latency stream intervalafter the client raises a request for said data; a plurality offinishing data streams, each of the finishing data streams: contains therest of the leading portion of said data; corresponds to one of theleading segments; and are generated when the corresponding leadingsegment is generated.
 11. A system for transmitting data over a networkto at least one client having a latency time to initiate transmission ofsaid data to the client, including: at least one anti-latency signalgenerator for generating at least one of anti-latency data streamcontaining at least a leading portion of said data for receipt by theclient; and at least one interactive signal generator for generating atleast one interactive data stream containing at least a remainingportion of said data for the client to merge into after receiving atleast a portion of an anti-latency data stream. wherein: the leadingportion of said data can be generated at regular anti-latency streamintervals; and is generated at the next earliest anti-latency streaminterval after at least one client raises a request for said data. 12.The system of claim 11, wherein: said data requiring a time R to betransmitted over the network is fragmented into K segments eachrequiring a time T to transmit over the network; the anti-latency datastream includes M anti-latency data streams, wherein each of the Manti-latency data streams contains substantially identical data can begenerated at regular anti-latency time intervals; and is generated atthe next earliest anti-latency stream interval after the client raises arequest for said data; the interactive data stream includes Ninteractive data streams, wherein each of the N interactive data streamsis repeated continuously within said interactive data stream, and eachsuccessive interactive data stream is staggered by an interactive timeinterval.
 13. The system of claim 12, wherein: the client is connectedto the M anti-latency data streams generated for the client when theclient raises the request for said data; the client is connected to anyone of the N interactive data streams; and the M anti-latency datastreams generated for the client are terminated after the client isconnected to one of the N interactive data streams.
 14. The system ofclaim 11, wherein: said data requiring a time R to be transmitted overthe network is fragmented into K segments each requiring a time T totransmit over the network; the anti-latency data stream includes Manti-latency data streams including: I. a leading data stream thatcontains at least one leading segment of the leading portion of saiddata can be generated at regular anti-latency time intervals; and isgenerated at the next earliest anti-latency stream interval after theclient raises a request for said data; II. a plurality of finishing datastreams, wherein each of the finishing data streams: contains the restof the leading portion of said data; corresponds to one of the leadingsegments; and is generated when the corresponding leading segment isgenerated; the interactive data stream includes N interactive datastreams, wherein each of the N interactive data streams is repeatedcontinuously within said interactive data stream, and each successiveinteractive data stream is staggered by an interactive time interval.15. The system of claim 11, wherein: said data requiring a time R to betransmitted over the network is fragmented into K segments eachrequiring a time T to transmit over the network; the interactive datastream includes N interactive data streams, wherein each of the Ninteractive data streams is repeated continuously within saidinteractive data stream, and wherein each successive interactive datastream is staggered by an interactive time interval $\frac{KT}{N};$ theanti-latency data stream includes M anti-latency data streams, such thatan m^(th) anti-latency data stream has F_(m) segments, wherein F_(m) isan m^(th) Fibonacci number; the F_(m) segments can be generated atregular anti-latency stream intervals; the first F_(m) segment isgenerated at the next earliest anti-latency stream interval when theclient raises a request for said data; and subsequent F_((m+1)) segmentsare generated before all data in the preceding F_(m) segment is receivedby the client.
 16. The system of claim 15, wherein: the client isconnected to at least the m^(th) and (m+1)^(th) anti-latency datastreams when the client raises a request for said data; the data in atleast the m^(th) and (m+1)^(th) anti-latency data streams is buffered inthe client; and the client is subsequently connected to successiveanti-latency data streams until all data in the leading portion isreceived by the client.
 17. The system of claim 16, wherein the clientis connected to any one of the N interactive data streams after all datain the leading portion is received by the client; and the M anti-latencydata streams are terminated after the client is connected to one of theN interactive data streams.
 18. The system of claim 15, wherein each ofthe N interactive data streams contains the whole set of said datahaving K segments.
 19. The system of claim 15, wherein each of the Ninteractive data streams contains the remaining portion of said dataonly.
 20. The system of claim 15, wherein $F_{M} \geq {\frac{2K}{N}.}$